﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SchoolProject2012.Domain;


namespace SchoolProject2012.Services
{
    public interface IModelService
    {
        #region Entreprise
        Entreprise getEntreprise(int id);
        IEnumerable<Entreprise> getListOfEntreprise();
        bool addEntreprise(Entreprise ent);
        bool updateEntreprise(Entreprise ent);
        bool deleteEntreprise(int id);
        #endregion

        #region Contact
        Contactentreprise getContactEntreprise(int id);
        IEnumerable<Contactentreprise> getListOfContactEntreprise();
        bool addContactEntreprise(Contactentreprise con);
        bool updateContactEntreprise(Contactentreprise ent);
        IEnumerable<Contactentreprise> getListOfContactEntreprise(int idEntreprise);
        bool deleteContactEntreprise(int id);
        #endregion

        #region stage
        OffreDeStage getOffreDeStage(int id);
        IEnumerable<OffreDeStage> getListOfOffreDeStage();
        bool addOffreDeStage(OffreDeStage off);
        bool updateOffreDeStage(OffreDeStage off);
        IEnumerable<OffreDeStage> getListOfOffreDeStage(int idEntreprise);
        bool deleteOffreDeStage(int id);
        #endregion

        #region eleve
        Eleve getEleve(string login);
        IEnumerable<Eleve> getListOfEleve();
        bool addEleve(Eleve ele);
        bool updateEleve(Eleve ele);
        IEnumerable<Eleve> getListOfEleve(int idClasse);
        bool deleteEleve(string login);
        #endregion

        #region classe
        Classe getClasse(int id);
        IEnumerable<Classe> getListOfClasse();
        bool addClasse(Classe cla);
        bool updateClasse(Classe cla);
        bool deleteClasse(int id);
        #endregion

        #region contrat
        Contrat getContrat(string loginPers, string annee);
        IEnumerable<Contrat> getListOfContrat();
        IEnumerable<Contrat> getListOfContratByYear(string annee);
        IEnumerable<Contrat> getListOfContratByPers(string loginPers);
        IEnumerable<Contrat> getListOfContratByEntreprise(int idEntreprise);
        bool addContrat(Contrat con);
        bool updateContrat(Contrat con);
        bool deleteContrat(string login, int idEntreprise, string annee);
        #endregion

        #region chargeDePlacement
        IEnumerable<Eleve> getListOfEleveOfChargeDePlacement(string login);
        bool addChargeDePlacement(ChargeDePlacement cp);
        bool updateChargeDePlacement(ChargeDePlacement cp);
        bool deleteChargeDePlacement(string login);
        #endregion

    }
}
